package com.guomao.cloud.service;

import com.guomao.cloud.domain.User;

import java.util.List;

/**
 * 用户服务接口，定义了用户相关的业务操作方法
 * 该接口包含用户的基本CRUD操作以及批量查询等功能
 */
public interface UserService {
    /**
     * 创建新用户
     * @param user 用户对象，包含用户的所有信息
     */
    void create(User user);

    /**
     * 根据用户ID获取用户信息
     * @param id 用户的唯一标识符
     * @return 返回对应的用户对象，如果不存在则返回null
     */
    User getUser(Long id);

    /**
     * 更新用户信息
     * @param user 包含更新后信息的用户对象
     */
    void update(User user);

    /**
     * 根据用户ID删除用户
     * @param id 要删除的用户的唯一标识符
     */
    void delete(Long id);

    /**
     * 根据用户名获取用户信息
     * @param username 用户名，唯一标识
     * @return 返回对应用户名的用户对象，如果不存在则返回null
     */
    User getByUsername(String username);

    /**
     * 根据用户ID列表批量获取用户信息
     * @param ids 用户ID列表
     * @return 返回包含所有查询到的用户对象的列表
     */
    List<User> getUserByIds(List<Long> ids);
}
